package com.itheima.common;

/**
 *基于ThreadLocal封装工具类，用户保存和获取当前登录用户id
 */

public class BaseContext {
    /*ThreadLocal是除了加锁这种同步方式之外的一种保证一种规避多线程访问出现线程不安全的方法，当
      我们在创建一个变量后，如果每个线程对其进行访问的时候访问的都是线程自己的变量这样就不会存在线程不安全问题。*/
    private static ThreadLocal<Long> threadLocal=new ThreadLocal<>();

    /**
     * 设置值
      * @param id
     */
    public static void setCurrentId(Long id){
        threadLocal.set(id);
    }

    /**
     * 获取值
     *
     * @return
     */
    public static Object getCurrentId(){
        return threadLocal.get();
    }
}
